Applied Metaphors: Learning TRIZ, Complexity, Data/Stats/ML using Metaphors
  1. ggplotly: various examples
  • Teaching
    • Data Viz and Analytics
      • Tools
        • Introduction to R and RStudio
        • Introduction to Radiant
        • Introduction to Orange
      • Descriptive Analytics
        • Data
        • Graphs
        • Summaries
        • Counts
        • Quantities
        • Groups
        • Densities
        • Groups and Densities
        • Change
        • Proportions
        • Parts of a Whole
        • Evolution and Flow
        • Ratings and Rankings
        • Surveys
        • Time
        • Space
        • Networks
        • Experiments
        • Miscellaneous Graphing Tools, and References
      • Statistical Inference
        • 🧭 Basics of Statistical Inference
        • 🎲 Samples, Populations, Statistics and Inference
        • Basics of Randomization Tests
        • πŸƒ Inference for a Single Mean
        • πŸƒ Inference for Two Independent Means
        • πŸƒ Inference for Comparing Two Paired Means
        • Comparing Multiple Means with ANOVA
        • Inference for Correlation
        • πŸƒ Testing a Single Proportion
        • πŸƒ Inference Test for Two Proportions
      • Inferential Modelling
        • Modelling with Linear Regression
        • Modelling with Logistic Regression
        • πŸ•” Modelling and Predicting Time Series
      • Predictive Modelling
        • πŸ‰ Intro to Orange
        • ML - Regression
        • ML - Classification
        • ML - Clustering
      • Prescriptive Modelling
        • πŸ“ Intro to Linear Programming
        • πŸ’­ The Simplex Method - Intuitively
        • πŸ“… The Simplex Method - In Excel
      • Workflow
        • Facing the Abyss
        • I Publish, therefore I Am
      • Using AI in Analytics
        • Case Studies
          • Demo:Product Packaging and Elderly People
          • Ikea Furniture
          • Movie Profits
          • Gender at the Work Place
          • Heptathlon
          • School Scores
          • Children's Games
          • Valentine’s Day Spending
          • Women Live Longer?
          • Hearing Loss in Children
          • California Transit Payments
          • Seaweed Nutrients
          • Coffee Flavours
          • Legionnaire’s Disease in the USA
          • Antarctic Sea ice
          • William Farr's Observations on Cholera in London
      • TRIZ for Problem Solvers
        • I am Water
        • I am What I yam
        • Birds of Different Feathers
        • I Connect therefore I am
        • I Think, Therefore I am
        • The Art of Parallel Thinking
        • A Year of Metaphoric Thinking
        • TRIZ - Problems and Contradictions
        • TRIZ - The Unreasonable Effectiveness of Available Resources
        • TRIZ - The Ideal Final Result
        • TRIZ - A Contradictory Language
        • TRIZ - The Contradiction Matrix Workflow
        • TRIZ - The Laws of Evolution
        • TRIZ - Substance Field Analysis, and ARIZ
      • Math Models for Creative Coders
        • Maths Basics
          • Vectors
          • Matrix Algebra Whirlwind Tour
          • content/courses/MathModelsDesign/Modules/05-Maths/70-MultiDimensionGeometry/index.qmd
        • Tech
          • Tools and Installation
          • Adding Libraries to p5.js
          • Using Constructor Objects in p5.js
        • Geometry
          • Circles
          • Complex Numbers
          • Fractals
          • Affine Transformation Fractals
          • L-Systems
          • Kolams and Lusona
        • Media
          • Fourier Series
          • Additive Sound Synthesis
          • Making Noise Predictably
          • The Karplus-Strong Guitar Algorithm
        • AI
          • Working with Neural Nets
          • The Perceptron
          • The Multilayer Perceptron
          • MLPs and Backpropagation
          • Gradient Descent
        • Projects
          • Projects
      • Tech for Creative Education
        • 🧭 Using Idyll
        • 🧭 Using Apparatus
        • 🧭 Using g9.js
      • Literary Jukebox: In Short, the World
        • Italy - Dino Buzzati
        • France - Guy de Maupassant
        • Japan - Hisaye Yamamoto
        • Peru - Ventura Garcia Calderon
        • Russia - Maxim Gorky
        • Egypt - Alifa Rifaat
        • Brazil - Clarice Lispector
        • England - V S Pritchett
        • Russia - Ivan Bunin
        • Czechia - Milan Kundera
        • Sweden - Lars Gustaffsson
        • Canada - John Cheever
        • Ireland - William Trevor
        • USA - Raymond Carver
        • Italy - Primo Levi
        • India - Ruth Prawer Jhabvala
        • USA - Carson McCullers
        • Zimbabwe - Petina Gappah
        • India - Bharati Mukherjee
        • USA - Lucia Berlin
        • USA - Grace Paley
        • England - Angela Carter
        • USA - Kurt Vonnegut
        • Spain-Merce Rodoreda
        • Israel - Ruth Calderon
        • Israel - Etgar Keret
    • Posts
    • Blogs and Talks

    On this page

    • Row
      • Unemployment
      • Crimes
    • Row
      • Faithful Eruptions
      • Faithful Eruptions (polygon)
      • Faithful Eruptions (hex)

    ggplotly: various examples

    Author

    Carson Sievert

    Row

    Unemployment

    # This example modifies code from Hadley Wickham (https://gist.github.com/hadley/233134)
    # It also uses data from Nathan Yau's flowingdata site (http://flowingdata.com/)
    unemp <- read.csv("http://datasets.flowingdata.com/unemployment09.csv")
    names(unemp) <- c(
      "id", "state_fips", "county_fips", "name", "year",
      "?", "?", "?", "rate"
    )
    unemp$county <- tolower(gsub(" County, [A-Z]{2}", "", unemp$name))
    unemp$state <- gsub("^.*([A-Z]{2}).*$", "\\1", unemp$name)
    county_df <- map_data("county")
    names(county_df) <- c("long", "lat", "group", "order", "state_name", "county")
    county_df$state <- state.abb[match(county_df$state_name, tolower(state.name))]
    county_df$state_name <- NULL
    state_df <- map_data("state")
    choropleth <- merge(county_df, unemp, by = c("state", "county"))
    choropleth <- choropleth[order(choropleth$order), ]
    choropleth$rate_d <- cut(choropleth$rate, breaks = c(seq(0, 10, by = 2), 35))
    
    # provide a custom tooltip to plotly with the county name and actual rate
    choropleth$text <- with(choropleth, paste0("County: ", name, "Rate: ", rate))
    p <- ggplot(choropleth, aes(long, lat, group = group)) +
      geom_polygon(aes(fill = rate_d, text = text),
        colour = alpha("white", 1 / 2), size = 0.2
      ) +
      geom_polygon(data = state_df, colour = "white", fill = NA) +
      scale_fill_brewer(palette = "PuRd") +
      theme_void()
    # just show the text aesthetic in the tooltip
    ggplotly(p, tooltip = "text")

    Crimes

    crimes <- data.frame(state = tolower(rownames(USArrests)), USArrests)
    crimesm <- tidyr::gather(crimes, variable, value, -state)
    states_map <- map_data("state")
    g <- ggplot(crimesm, aes(map_id = state)) +
      geom_map(aes(fill = value), map = states_map) +
      expand_limits(x = states_map$long, y = states_map$lat) +
      facet_wrap(~variable) +
      theme_void()
    ggplotly(g)

    Row

    Faithful Eruptions

    m <- ggplot(faithful, aes(x = eruptions, y = waiting)) +
      stat_density_2d() +
      xlim(0.5, 6) +
      ylim(40, 110)
    ggplotly(m)

    Faithful Eruptions (polygon)

    m <- ggplot(faithful, aes(x = eruptions, y = waiting)) +
      stat_density_2d(aes(fill = ..level..), geom = "polygon") +
      xlim(0.5, 6) +
      ylim(40, 110)
    ggplotly(m)

    Faithful Eruptions (hex)

    m <- ggplot(faithful, aes(x = eruptions, y = waiting)) +
      geom_hex()
    ggplotly(m)
    Error in loadNamespace(x): there is no package called 'hexbin'
    Back to top

    License: CC BY-SA 2.0

    Website made with ❀️ and Quarto, by Arvind V.

    Hosted by Netlify .